package bombita.controlador;

import java.util.ArrayList;
import java.util.List;

import org.jdom2.Element;

import bombita.modelo.Juego;
import bombita.modelo.Personajes.Personaje;
import bombita.vista.ai.VistaMapaAI;

public class ControladorAI implements ControladorPersonaje, Runnable
{
	protected List<Personaje> controlados;
	protected VistaMapaAI vista;
	protected boolean activo;
	protected String id;
	
	public ControladorAI (String id)
	{
		controlados = new ArrayList<Personaje>();
		activo = false;
		this.setId(id);
	}
	
	@Override
	public String getId()
	{
		return id;
	}

	@Override
	public void setId(String id)
	{
		this.id = id;
	}
	
	@Override
	public void agregarControlado(Personaje aControlar) throws DemasiadosControladosException
	{
		controlados.add(aControlar);
	}

	@Override
	public boolean puedeControlarUnPersonajeMas()
	{
		return true;
	}

	@Override
	public void inicioJuego()
	{
		activo = true;
		Thread hilo = new Thread(this);
		hilo.start();
	}

	@Override
	public void agregarVista(Juego juego)
	{
		vista = new VistaMapaAI();
		juego.getMapa().agregarVista(vista);
	}

	@Override
	public void run()
	{
		// TODO agregar codigo que realiza acciones
	}

	@Override
	public void terminoJuego()
	{
		activo = false;
	}
	
	public static ControladorAI deserializar(Element nodo)
	{
		return new ControladorAI(nodo.getAttributeValue("id"));
	}
}
